In the fastest analog-to-digital (A/D) converters using conventional solid state circuits, an analog voltage to be converted is applied to a parallel array of converters for simultaneous comparison with a like number of reference voltages. The resulting output is digitally encoded into an output word. Parallel A/D converters use an array of analog comparators with respective reference voltages each separated from the others by the voltage equivalent of one least-significant bit (LSB). The array of these comparators is called a "thermometer code", because the outputs of the comparators which are coupled to reference voltages less than the input analog voltage will be set to one logical state while all of the outputs of the comparators which are coupled to reference voltages greater than the input analog voltage will be set to a different logical state. This thermometer code is coupled to digital encoding circuitry which detects the decision boundary between the two groups of outputs having different logical states and generates the appropriate digital code to be output by the converter.
The precision of the A/D converter is inversely dependent on the difference in voltage between the reference voltages of neighboring comparators. As designers have attempted to construct A/D converters of greater precision, the difference between the reference voltages of neighboring comparators has grown smaller and smaller. Voltage errors have thus become significant compared to the value of this difference in voltage. Errors in a parallel A/D converter can be caused by erroneous voltage offsets, component mismatching, noise, timing mishaps and many other causes. If the error inducing forces in the system are significant compared to one LSB, one or more of the comparators may produce erroneous outputs such that the data array of the comparator outputs is not in thermometer code form with a single decision boundary.
Previous attempts to correct these output errors have included the positioning of AND gates between the comparator output and the binary encoder. The AND gates each have one extra input for error correction purposes. This method will correct a small class of thermometer code errors, but can result in an undesirable shifting of the decision boundary. Such a circuit is described by J. G. Peterson in "A Monolithic Video A/D Converter," IEEE Journal of Solid State Circuits, vol. SC-14, no. 6, Dec. 1979.
Other attempts to correct these errors have included dividing the comparators into groups and suppressing errors between the groups. Y. Yoshii et al., "An 8B 350 MHz Flash ADC," 1987 IEEE International SolidStated Circuits Conference. However, this method cannot correct general thermometer code errors throughout the data array.
Therefore, a need has arisen for a method and apparatus for correcting general thermometer code errors which does not shift the decision boundary of the thermometer code output, but which can detect and correct errors in the output of the entire comparator array.